成功登录后,我有这一行
FormsAuthentication.SetAuthCookie(a.username, true);
然后我有几个页面需要登录才能被访问,所以我添加了[Authorize]属性,就像这样
[Authorize]
public ActionResult Upload()
{
return View();
}
但是,登录后,此类功能仍会返回401 - 未授权错误页面,就像用户尚未登录一样。错误页面指出: 登录方法匿名 登录用户匿名
此外,在我的项目中,启用了匿名身份验证,并禁用了Windows身份验证。
我正在寻找一种解决方案,其中像Upload()这样的功能总是可供任何登录用户使用。
答案 0 :(得分:0)
你能做什么,我做的是用这种方式写你自己的cookie:
FormsAuthenticationTicket authTicket = new
FormsAuthenticationTicket(1, //version number of ticket
userName, // UserName
DateTime.Now, //cookie creation time
DateTime.Now.AddHours(24), //Expiration time . cookie valid for 1 day
true, //Persistent
userData); // other data to store in ticket
//设置Cookie
Response.SetCookie(
new HttpCookie(
FormsAuthentication.FormsCookieName,
FormsAuthentication.Encrypt(authTicket)) //// encrypt ticket
{
Expires = DateTime.Now.AddHours(24),
HttpOnly = true,
Secure = FormsAuthentication.RequireSSL
});
答案 1 :(得分:0)
"需要启用表单身份验证,如果你有system.web"请查看你的web.config。 - glacasa