gpt4 book ai didi

c# - asp.net - Web API 2 单页应用程序 - 使用内置登录表单未授权?

转载 作者:太空宇宙 更新时间:2023-11-03 10:48:41 25 4
gpt4 key购买 nike

我刚刚在 Visual Studio 2013 中开发我的第一个 Web API 2 单页应用程序。当我开始这个项目时,我选择了身份验证:个人帐户。因此,当我构建解决方案时,出现了登录表单。我注册了一个用户,我可以成功登录。

我的 Controller 已准备就绪,我将 [authorize]-Attribute 放在我的请求前面。

当我未登录并导航到我的请求时,它会向我显示错误消息:

"Authorization has been denied for this request."

这很好,但是当我登录并再次导航到该请求时,它仍然显示相同的消息。

Controller 本身在没有 [authorize]-attribute 的情况下工作正常。

我对这个主题真的很陌生,我找不到任何关于如何连接内置登录和授权我的请求的信息。我希望你可以帮助我。

编辑:

我刚刚发现身份验证和授权的区别。首先是识别用户,其次是赋予他做任何事情的权利......

所以我尝试了 [Authorize(Users="Username")],但它不起作用。 (它也应该与 [Authorize] 一起使用,因为因此您授权了所有用户??)

我的申请有什么问题? :(

编辑 2:

我仍在寻找如何将 access_token 放入 header 中! :(

最佳答案

当您通过 ajax 向您的 Controller 发送请求时,添加您的授权声明 token

对于您需要发送授权 token 的每个请求

用户成功登录后在 SPA 的 login.viewmodel.js 中保存 data.access_token,此 token 需要为每个 ajax 请求发送,如下所示

如果这回答了您的问题,请检查左侧的右侧。

  $.ajax(url, {
type: "POST",
data: data,
headers: "Authorization": "Bearer " + accessToken
});




dataModel.login({
grant_type: "password",
username: self.userName(),
password: self.password()
}).done(function (data) {
self.loggingIn(false);

if (data.userName && data.access_token) {
app.navigateToLoggedIn(data.userName, data.access_token, self.rememberMe());
} else {
self.errors.push("An unknown error occurred.");
}
}).failJSON(function (data) {
self.loggingIn(false);

if (data && data.error_description) {
self.errors.push(data.error_description);
} else {
self.errors.push("An unknown error occurred.");
}
});

关于c# - asp.net - Web API 2 单页应用程序 - 使用内置登录表单未授权?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22346163/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com