我正在从事asp.net webapi项目,我希望只允许我的域访问,但是当我从JavaScript调用webapi时,它工作得很好,但问题是当我从c#代码调用webapi时,它允许任何domine访问,如何限制它,我希望只为我的域提供访问权限。
我正在从事asp.net webapi项目,我只想允许我的域访问,但是当我从JavaScript调用webapi时,它工作得很好,但问题是当我从c#代码调用webapi时,它允许所有的域访问,我如何限制它?我只想为我的域提供访问权限
发布于 2022-03-25 06:27:44
您可以使用Microsoft.AspNet.WebApi.Cors,一个来自微软的Nuget包。按照以下步骤:
你可以得到更多的信息这里
发布于 2022-03-25 07:22:38
1=> var cors = new EnableCorsAttribute("http://mydomain", "*", "*"); config.EnableCors(cors);我在web配置文件中作为全局级别编写了这段代码,但是当我从客户端调用我的web时,它运行良好,它只允许指定的域。
2=>这是我的客户端代码
<script src="https://cdnjs.cloudflare.com/ajax/libs/knockout/2.2.0/knockout-min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
$ $.ajax({
url: "http://localhost:49676/Account/ValidLogin",
method: "get",
data: Employee,
dataType: "json",
//contentType: "application/json",
success: function (data) {
GetAllEmployee(data);
alert("success");
console.log(data);
},
error: function (err) {
alert("error");
}
这是我的服务器端代码
受保护的空btnDelete_Click(对象发送方,EventArgs e) {
string strUrl = string.Format("http://mydomain/account/validlogin?username=admin&password=admin");
HttpWebRequest requestObjectGet = (HttpWebRequest)HttpWebRequest.Create(strUrl);
requestObjectGet.Method = "GET";
HttpWebResponse responseObjectGet = null;
responseObjectGet = (HttpWebResponse)requestObjectGet.GetResponse();
string strresulttest = null;
using (Stream stream = responseObjectGet.GetResponseStream())
{
StreamReader sr = new StreamReader(stream);
strresulttest = sr.ReadToEnd();
JavaScriptSerializer js = new JavaScriptSerializer();
string StrToken = js.Deserialize<string>(strresulttest);
Session["ApiToken"] = StrToken;}
https://stackoverflow.com/questions/71612458
复制相似问题