温莎城堡的生活方式取决于使用 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 的构造函数还是初始化函数。您可能会根据不同的方式采用不同的解决方案。无论哪种情况,我都会考虑三种方法来解决这个问题:

  1. 显式(构造函数)

构建一个包装器服务来公开 cookie 中的值并让您的 UserClass 使用它。这是最简单、最不神奇的选项,您团队中的任何人都可以轻松掌握。

  1. DynamicParameters(构造函数)

使用 DynamicDependencies 功能将 cookie 值传递到解析管道。它将您与温莎联系在一起,并且您团队中的每个人可能都不是很明显,因此您需要考虑这一点。

  1. OnCreate(初始化)

使用OnCreate 功能初始化对象post-构造。与选项 2 几乎相同的想法,但用于已构建的对象。这可以应用显式或隐式方法(即上面的 1. 或 2.)

就像所有事情一样,这都是在技术上可行与对您的代码架构和团队有意义之间的权衡。