温莎城堡的生活方式取决于使用 cookie 的表单身份验证
Castle Windsor life style depend on forms authentication with cookie
我的框架中有一个用户class,我想在第一次登录时初始化。
public class UserClass
{
public void Initial(string userId, string userName)
{
UserId = useriId;
UserName = userName;
}
public string UserId { get; private set; }
public string UserName { get; private set; }
}
我要这样的生活class要靠
HttpContext.Current.Request.Cookies[FormsAuthentication.FormsCookieName]
我不确定您的 Initial
方法是作为 UserClass
的构造函数还是初始化函数。您可能会根据不同的方式采用不同的解决方案。无论哪种情况,我都会考虑三种方法来解决这个问题:
- 显式(构造函数)
构建一个包装器服务来公开 cookie 中的值并让您的 UserClass
使用它。这是最简单、最不神奇的选项,您团队中的任何人都可以轻松掌握。
DynamicParameters
(构造函数)
使用 DynamicDependencies
功能将 cookie 值传递到解析管道。它将您与温莎联系在一起,并且您团队中的每个人可能都不是很明显,因此您需要考虑这一点。
OnCreate
(初始化)
使用OnCreate
功能初始化对象post-构造。与选项 2 几乎相同的想法,但用于已构建的对象。这可以应用显式或隐式方法(即上面的 1. 或 2.)
就像所有事情一样,这都是在技术上可行与对您的代码架构和团队有意义之间的权衡。
我的框架中有一个用户class,我想在第一次登录时初始化。
public class UserClass
{
public void Initial(string userId, string userName)
{
UserId = useriId;
UserName = userName;
}
public string UserId { get; private set; }
public string UserName { get; private set; }
}
我要这样的生活class要靠
HttpContext.Current.Request.Cookies[FormsAuthentication.FormsCookieName]
我不确定您的 Initial
方法是作为 UserClass
的构造函数还是初始化函数。您可能会根据不同的方式采用不同的解决方案。无论哪种情况,我都会考虑三种方法来解决这个问题:
- 显式(构造函数)
构建一个包装器服务来公开 cookie 中的值并让您的 UserClass
使用它。这是最简单、最不神奇的选项,您团队中的任何人都可以轻松掌握。
DynamicParameters
(构造函数)
使用 DynamicDependencies
功能将 cookie 值传递到解析管道。它将您与温莎联系在一起,并且您团队中的每个人可能都不是很明显,因此您需要考虑这一点。
OnCreate
(初始化)
使用OnCreate
功能初始化对象post-构造。与选项 2 几乎相同的想法,但用于已构建的对象。这可以应用显式或隐式方法(即上面的 1. 或 2.)
就像所有事情一样,这都是在技术上可行与对您的代码架构和团队有意义之间的权衡。