使用cookie MVC asp.net进行身份验证和授权的正确方法是什么?

时间:2015-12-22 06:37:25

标签: asp.net-mvc cookies encryption public-key-encryption private-key

我正为我的应用程序制作自定义登录模块。我正在使用cookie来设置身份验证并检查cookie以进行授权。

现在我想设置cookie,详情如下:

  • 我将创建一个仅限http
  • 的cookie
  • 接下来我将使用私钥和公钥概念,公钥将被编码并添加到cookie Values,并带有时间戳和用户名全部编码。
  • 我想我会编码如下:

    private static byte[] GenerateDigitalSignature(byte[] data,RSAParameters asymmetricKey)
    {
        using (var rcsp = new RSACryptoServiceProvider())
        using (var cp = new SHA1CryptoServiceProvider())
        {
            rcsp.ImportParameters(asymmetricKey);
    
            return rcsp.SignData(data, cp);
        }
    }
    
  • 然后在登录请求时我将使用私钥对其进行解码,如果用户是授权,那么我将允许用户显示该页面。

  • 现在我想把我的私钥和公钥放在web.config中。

请您指导我这是登录和设置cookie的正确实现。

您还可以使用三个参数向 设置Cookie 进行示例。公钥,日期时间和用户名以及 解码 使用私钥

我正在设置我的cookie如下:

System.Web.HttpCookie loginCookie1 = new System.Web.HttpCookie("loginCookie");
    Response.Cookies["loginCookie1"].Values = new Dictionary<String, String>()
                        {
                            {"PublicKey", "Abc"},
                            {"DateTime", DateTime.Now.ToString()}
                        };

虽然它给了我错误,但它是转换错误。

Dictionaty<string,string> to NameValueCollection

谢谢

0 个答案:

没有答案