除了通过帮助程序类,我可以阻止某种类型的实例化吗?还有Resharper或StyleCop吗?

时间:2013-05-06 13:14:09

标签: c# .net asp.net-mvc httpcookie

在安全审核之后,我正在尝试在我们的MVC应用程序中强制创建安全的HttpCookies。我想出了一个辅助类来创建它们:

public static class CookieHelper
{
    /// <summary>
    /// Create Cookie.
    /// </summary>
    /// <param name="name">Cookie name.</param>
    /// <param name="value">Cookie value.</param>
    /// <returns>A cookie.</returns>
    public static HttpCookie CreateSecureCookie(string name, string value)
    {
        if (string.IsNullOrEmpty(name))
        {
            throw new ArgumentNullException("name");
        }

        var cookie = new HttpCookie(name, value);

        cookie.Secure = true;

        return cookie;
    }
}

我迷上了这个我们正在创建cookie的地方,所以现在我们没事。但是,我们是一个不断发展的组织,很多人都会在代码库中工作,所以我有点担心将来在这个帮助类之外创建新cookie的人。

有没有办法可以在Resharper,StyleCop或其他任何阻止实例化新HttpCookie()的方法中设置规则,除了帮助类外?

1 个答案:

答案 0 :(得分:0)

构建自己的类时,可以通过使构造函数成为私有(或内部)来阻止访问。但是当你处理从其他地方提供的现有课程(比如BCL)时,你必须使用允许的内容。

您最好在此强制执行安全Cookie,以便在更高级别构建架构,接受SecureCookieIEnumerable<SecureCookie>作为所需函数的参数。