我有一个(ASP.NET 3.5)Intranet应用程序,它被设计为使用表单身份验证(以及默认的aspnet成员资格系统).我还在另一个表中存储有关用户的其他信息,该表与aspnet_users表共享其主键.
对于属于我们域的用户,我将其域帐户名存储在辅助用户表中,并且我希望自动登录其域帐户名与存储在表中的名称匹配的用户.
我已经阅读了可用的指南 - 它们都来自两年或更长时间,并且假设您能够在单独的登录页面上激活Windows身份验证,该页面允许您提取域帐户名称.但是,据我所知,这在IIS7中是不可能的(整个身份验证方法适用于所有页面,无法有选择地停用,并且两种身份验证方法都不能应用于同一页面).
有没有办法让IIS通过请求用户的Windows域帐户名?我不需要正确的AD身份验证,只需要域名.
我正在尝试设置一个模板来创建一个具有一些基本结构和默认 using 语句的单元测试类。我创建了一个 VS2010 自定义模板来执行此操作,几乎一切正常。
我遇到的问题是,我试图在 using 语句中引用项目的基本命名空间,但无法确定是否有参数可以让我执行此操作。
我想要的示例,假设我的项目名为 MyProduct.Test:
using NUnit.Framework;
using MyProduct.Test.Base;
namespace MyProduct.Test.BLL.Services.MyService
{
[TestFixture]
public class MyServiceTest : TestBase
{
[SetUp]
public void Setup()
etc...
Run Code Online (Sandbox Code Playgroud)
我可以生成除using MyProduct.Test.Base以下模板之外的所有内容:
using NUnit.Framework;
using $safeprojectname$.Base;
namespace $rootnamespace$
{
[TestFixture]
public class $safeitemname$ : TestBase
{
[SetUp]
public void Setup()
etc...
Run Code Online (Sandbox Code Playgroud)
不幸的是,$safeprojectname$ 仅适用于项目模板,不适用于项目模板。
该模板会产生以下输出:
using NUnit.Framework;
using $safeprojectname$.Base;
namespace MyProduct.Test.BLL.Services.MyService
{
[TestFixture]
public class MyServiceTest : TestBase
{
[SetUp]
public void Setup()
etc...
Run Code Online (Sandbox Code Playgroud)
有什么方法可以让我获得项目的实际根命名空间(因为 $rootnamespace$ 实际上根据其位置输出要添加的文件的命名空间)?
注意:显然,我可以将其设置为适用于一个项目,但拥有一个适用于所有项目的模板会更有用。