مرجع تخصصی برنامه نویسان

انجمن تخصصی برنامه نویسان فارسی زبان

کاربر سایت

siamak8982

عضویت از 1392/05/14

احراز هویت در web api

  • پنجشنبه 20 اردیبهشت 1397
  • 14:43
تشکر میکنم

سلام چگونه میتونم در web api کاربر را احراز هویت کنم من از claaim استفاده کردم اما انجام نمی شود

   var identity = new ClaimsIdentity(context.Options.AuthenticationType);

   identity.AddClaim(new Claim(ClaimTypes.Role, "user"));




                identity.AddClaim(new Claim("username", getUser.RealUserName));
                identity.AddClaim(new Claim(ClaimTypes.NameIdentifier, getUser.RealUserName));

                identity.AddClaim(new Claim(ClaimTypes.Name, getUser.LastName));

                var m = context.Validated(identity);

  public class Startup
    {
        public void Configuration(IAppBuilder app)
        {
            app.UseCors(Microsoft.Owin.Cors.CorsOptions.AllowAll);
                var myProvider = new HphAuthorization();

                OAuthAuthorizationServerOptions options = new OAuthAuthorizationServerOptions
                {

                    AllowInsecureHttp = true,

                    TokenEndpointPath = new PathString("/m/token"),

                    AccessTokenExpireTimeSpan = TimeSpan.FromDays(1),

                    Provider = myProvider,
                    AuthenticationMode = Microsoft.Owin.Security.AuthenticationMode.Active,
              

                };

                app.UseOAuthAuthorizationServer(options);
                app.UseOAuthBearerAuthentication(new OAuthBearerAuthenticationOptions());
               app.UseOAuthBearerTokens(options);
                HttpConfiguration config = new HttpConfiguration();
                WebApiConfig.Register(config);
           
        }       
  
    }
             var testServer = TestServer.Create<Startup>();
            var requestParams = new List<KeyValuePair<string, string>>
                {
        new KeyValuePair<string, string>("grant_type", "password"),
        new KeyValuePair<string, string>("username", username ),
        new KeyValuePair<string, string>("password",password)
                };
            var requestParamsFormUrlEncoded = new FormUrlEncodedContent(requestParams);          
            var tokenServiceResponse = await  testServer.HttpClient.PostAsync(
                "/m/token", requestParamsFormUrlEncoded);
         
            var identity = (ClaimsPrincipal)System.Threading.Thread.CurrentPrincipal;
            var claims = identity.Claims;

پاسخ های این پرسش

تعداد پاسخ ها : 1 پاسخ
کاربر سایت

ایمان مدائنی

عضویت از 1392/01/20

  • پنجشنبه 20 اردیبهشت 1397
  • 17:29

باید از jwt استفاده کنید

پیاده‌سازی JWT Auth در Web API

کاربرانی که از این پست تشکر کرده اند

هیچ کاربری تا کنون از این پست تشکر نکرده است

اگر نیاز به یک مشاور در زمینه طراحی سایت ، برنامه نویسی و بازاریابی الکترونیکی دارید

با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)