asp.net-mvc – 在ServiceStack服务上进行身份验证后访问客户端
发布时间:2020-12-16 06:27:09 所属栏目:asp.Net 来源:网络整理
导读:我对会话文档有点困惑,所以让我说我已经从客户端发送身份验证数据并检索ss-id和ss-pid,如下所示: var client = new JsonServiceClient("http://somewhere/theAPI/");var response = client.Post(new Auth() {UserName = "myuser",Password = "password123"}
我对会话文档有点困惑,所以让我说我已经从客户端发送身份验证数据并检索ss-id和ss-pid,如下所示:
var client = new JsonServiceClient("http://somewhere/theAPI/"); var response = client.Post(new Auth() {UserName = "myuser",Password = "password123"}); var myCookie= client.CookieContainer.GetCookies(new Uri("http://somewhere/theAPI")); 我如何从服务栈中检索姓氏,电子邮件等的AuthSession信息?我需要它存储在其他地方,如在memcache服务器,并从中检索? 或者我需要在客户端构建我的身份验证?并只是使用API??来检索数据? 解决方法
假设您已经创建了自定义AuthUserSession,例如:
/// <summary> /// Create your own strong-typed Custom AuthUserSession where you can add additional AuthUserSession /// fields required for your application. The base class is automatically populated with /// User Data as and when they authenticate with your application. /// </summary> public class CustomUserSession : AuthUserSession { public string CustomId { get; set; } } 您在配置AuthFeature插件时注册了自定义AuthUserSession,如下所示: public override void Configure(Container container) { //Register all Authentication methods you want to enable for this web app. Plugins.Add(new AuthFeature( () => new CustomUserSession(),//Use your own typed Custom UserSession type new IAuthProvider[] { new CredentialsAuthProvider(),//HTML Form post of UserName/Password credentials // and any other auth providers you need })); } 然后,您可以在您创建的服务中将此数据公开给客户端. SocialBotstrapApi provides access to the current session information on the server like this:将其用作模型来创建UserAuth服务,该服务仅返回当前用户的信息. public abstract class AppServiceBase : Service { private CustomUserSession userSession; protected CustomUserSession UserSession { get { return base.SessionAs<CustomUserSession>(); } } } [Route("/userauths")] public class UserAuths { public int[] Ids { get; set; } } public class UserAuthsResponse { public UserAuthsResponse() { this.Users = new List<User>(); this.UserAuths = new List<UserAuth>(); this.OAuthProviders = new List<UserOAuthProvider>(); } public CustomUserSession UserSession { get; set; } public List<User> Users { get; set; } public List<UserAuth> UserAuths { get; set; } public List<UserOAuthProvider> OAuthProviders { get; set; } } //Implementation. Can be called via any endpoint or format,see: http://servicestack.net/ServiceStack.Hello/ public class UserAuthsService : AppServiceBase { public object Any(UserAuths request) { var response = new UserAuthsResponse { UserSession = base.UserSession,Users = Db.Select<User>(),UserAuths = Db.Select<UserAuth>(),OAuthProviders = Db.Select<UserOAuthProvider>(),}; response.UserAuths.ForEach(x => x.PasswordHash = "[Redacted]"); response.OAuthProviders.ForEach(x => x.AccessToken = x.AccessTokenSecret = x.RequestTokenSecret = "[Redacted]"); if (response.UserSession != null) response.UserSession.ProviderOAuthAccess.ForEach(x => x.AccessToken = x.AccessTokenSecret = x.RequestTokenSecret = "[Redacted]"); return response; } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net – 使用AJAX填充下拉列表
- asp.net-mvc – 在MVC3中使用Html.BeginForm是什么
- asp.net-mvc – MVC DropDownListFor和StringLength属性不能
- ASP.NET MVC 3:添加控制器时自动生成视图(无实体框架)
- asp.net-mvc-3 – 通过URL导致控制器的DateTime导致ASP .NE
- 检测到在集成的托管管道模式下不适用的ASP.NET设置的解决方
- asp.net-mvc – ASP.NET MVC:使用没有IClientValidatable的
- asp.net-membership – 将ASP.NET成员资格提供程序与现有用
- asp.net – 来自TextBox的ActionLink routeValue
- .net core 3.0_webapi项目使用Swagger提供接口帮助页面
推荐文章
站长推荐
- asp.net-mvc – 如何在响应重定向MVC后保留Serve
- asp.net – 如何将配置转换应用于外部配置文件
- ASP.NET Core 实现带认证功能的Web代理服务器
- asp.net-mvc – 绑定客户端模板中的两个字段,用于
- asp.net-mvc – ASPNET MVC中的Modelbinding数据
- asp.net-mvc – ASP.Net MVC输出缓存:指令或配置
- OData选择查询无法在ASP.NET WebAPI beta中使用
- ASP.NET MVC3:部分视图和主视图之间的交互
- asp.net – 如何正确过滤数据表(datatable.selec
- WinForms和ASP.NET自定义控件的通用代码
热点阅读