【问题标题】:Unable to Logout Completely From Web site Using Form Authentication无法使用表单身份验证从网站完全注销
【发布时间】:2015-11-25 15:51:40
【问题描述】:

我正在使用表单身份验证来验证和授权我网站中的请求。

这是登录的代码:

var objLogin = new LoginModel { Email = model.Email, Password = CommonMethod.Encryptdata(model.Password) };
var UserDetail = Users.LoginUser(objLogin); 
if (UserDetail.ErrorMessage == "SuccessLogin")
{
    var UserData = UserDetail.UserId + "," + UserDetail.UserRole + "," + UserDetail.Email + "," + UserDetail.FirstName + "," + UserDetail.LastName;
    DateTime expirydate = DateTime.Now.AddDays(10);
    var Ticket = new FormsAuthenticationTicket(1, UserDetail.Email, DateTime.Now, expirydate, true, UserData, FormsAuthentication.FormsCookieName);
    string hashCookies = FormsAuthentication.Encrypt(Ticket);
    var Cookie = new HttpCookie(FormsAuthentication.FormsCookieName, hashCookies);
    Response.Cookies.Add(Cookie);
    ViewBag.InActiveStatus = "";

    //Code for expiration
    if (Ticket.IsPersistent)
    {
        Cookie.Expires = Ticket.Expiration;
    }

    if (!string.IsNullOrEmpty(returnUrl))
    return Redirect(returnUrl);
}

我正在使用持久性 cookie。

用于退出网站的方法包含以下代码:

FormsAuthentication.SignOut();

Session.Abandon();
Session.Clear();
Session.RemoveAll();

string[] myCookies = Request.Cookies.AllKeys;

foreach (string cookie in myCookies)
{
    Response.Cookies[cookie].Expires = DateTime.Now.AddYears(-1);
}

return RedirectToAction("Login", "Account");

我面临的问题是退出后我可以上网家庭控制器 页。我已经在所有家庭控制器方法上实现了 Authorize(Roles="user")。

[Authorize(Roles = "user")]
public ActionResult Index()

但我无法从其他控制器(家庭除外)浏览页面。例如 在 Challenge Controller 中使用以下方法:

[Authorize(Roles = "user")]
public ActionResult MyChallenges()

当我强行清理浏览器cookies时问题得到解决。但是从用户体验的角度来看,不建议普通用户这样做。

请说明为什么会这样?提前致谢!

【问题讨论】:

    标签: asp.net-mvc authentication cookies authorization forms-authentication


    【解决方案1】:

    您好 Stackoverflow 专家

    我还在等我的答案!

    谢谢 伊马斯图

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-11-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-02-18
      • 1970-01-01
      相关资源
      最近更新 更多