Web api Owin Authentication从密钥检索用户信息

时间:2015-12-28 06:59:19

标签: c# authentication asp.net-web-api asp.net-identity owin

大家好我首先对asp.net身份和Owin身份验证有一点了解,如果我的问题不正确,请原谅我。

我有一个web-api项目正在验证使用Active目录,而使用api的客户端是iphone应用程序。我必须按顺序使用Owin身份验证来保护用户名和密码。此外,我正在将Microsoft动态CRM与web-api集成。为了授权CRM,我们需要在Owin KEY

中加密的用户名和密码

但我不知道如何从owin密钥解密用户信息任何人都可以帮助我的Owin身份验证代码如下所示

 /// <summary>
        /// Signin
        /// </summary>
        /// <param name="user"></param>
        /// <param name="options"></param>
        /// <param name="authManager"></param>
        /// <returns></returns>
        public string SignIn(User user, OAuthAuthorizationServerOptions options, IAuthenticationManager authManager)
        {
            ClaimsIdentity identity = SetClaims(user, options);
            AuthenticationTicket ticket = new AuthenticationTicket(identity, new AuthenticationProperties());

            var currentUtc = new SystemClock().UtcNow;
            ticket.Properties.IssuedUtc = currentUtc;
           // ticket.Properties.ExpiresUtc = currentUtc.Add(TimeSpan.FromDays(user.AuthenticationExpiry));
            ticket.Properties.ExpiresUtc = currentUtc.Add(TimeSpan.FromDays(180));
            authManager.SignIn(identity);

            return options.AccessTokenFormat.Protect(ticket);
        }

        private ClaimsIdentity SetClaims(User user, OAuthAuthorizationServerOptions options)
        {
            ClaimsIdentity identity = new ClaimsIdentity(options.AuthenticationType);

            string userdata = user.UserName +"~"+ user.Password;

            identity.AddClaim(new Claim(ClaimTypes.UserData, userdata.ToString()));
            return identity;
        }

如何使用KEY授权每个请求。因为iphone应用程序只提供我在用户登录时提供的密钥。任何人都可以请帮助

0 个答案:

没有答案