尝试将页面重定向到登录页面时出错?

时间:2017-09-27 15:38:45

标签: c# asp.net-mvc

您好我在尝试将我的页面重定向到登录页面时收到此错误。

public ActionResult Index() {
    FormsAuthenticationTicket ticket = FormsAuthentication.Decrypt(Request.Cookies[FormsAuthentication.FormsCookieName].Value);
    //0 Username | 1 Fullname | 2 User Id | 3 Login Type | 4 Election Id
    string[] UserData = ticket.UserData.Split('|');

    if (UserData[3] == null)
    {
        FormsAuthentication.SignOut();
        return RedirectToAction("login", "login");
    }

错误是:

  

' /'中的服务器错误应用

     

对象引用未设置为对象的实例。

     

描述:执行期间发生了未处理的异常   当前的网络请求。请查看堆栈跟踪了解更多信息   有关错误的信息以及它在代码中的起源。

     

异常详细信息:System.NullReferenceException:不是对象引用   设置为对象的实例。

     

来源错误:

     

第22行:第23行:公共ActionResult索引(){第24行:第   FormsAuthenticationTicket ticket =   FormsAuthentication.Decrypt(Request.Cookies时[FormsAuthentication.FormsCookieName]。价值);   第25行:// 0用户名| 1全名| 2用户ID | 3登录   输入| 4 Election Id Line 26:string [] UserData =   ticket.UserData.Split(' |&#39);

     

源文件:   C:\选举\ Elections2014 \ \控制器FFS \ ffsInventoryController.cs
  行:24

1 个答案:

答案 0 :(得分:0)

您的变量ticket似乎为空。这就是为什么在想要拆分UserData时得到NullPointerException的原因。如果encryptedTicket参数不是有效票证,则FormsAuthentication.Decrypt()返回null。

查看:FormsAuthentication.Decrypt Method (String)

Request.Cookies[FormsAuthentication.FormsCookieName].Value应返回有效的encryptedTicket-String。在你的情况下,似乎是没有返回有效的字符串。

相关问题