小编Bra*_*dis的帖子

Watin Windows身份验证

我正在尝试为使用集成身份验证的Intranet应用程序编写Watin测试.我正在尝试测试的网页打印Page.User.Identity.Name.

以下是我测试的一些代码:

if (Win32.LogonUser(u.UserName, u.Domain, u.Password, 2 /*LOGON32_LOGON_INTERACTIVE*/, 0 /*LOGON32_PROVIDER_DEFAULT*/, out hToken))
            {
                if (Win32.DuplicateToken(hToken, 2, out hTokenDuplicate))
                {
                    WindowsIdentity windowsIdentity = new WindowsIdentity(hTokenDuplicate);
                    WindowsImpersonationContext impersonationContext = windowsIdentity.Impersonate();  

                    Console.WriteLine(WindowsIdentity.GetCurrent().Name);

                    using (IE ie = new IE(url))
                    {
                        Console.WriteLine(ie.ContainsText(u.UserName));
                        ie.AutoClose = false;
                    }

                    impersonationContext.Undo();
                }
            }
Run Code Online (Sandbox Code Playgroud)

当我运行它时,它会打印我试图模拟到控制台的用户名,但是网页显示我当前登录的用户,而不是我应该模仿的用户.

类似的问题发现于:
使用AzMan实现的授权方案的自动测试

authentication watin

5
推荐指数
1
解决办法
2845
查看次数

Castle Windsor控制器工厂和RenderAction

在使用Castle Windsor Controller Factory和新的RenderAction方法时,我遇到了一个问题.我收到以下错误消息:

控制器'MyController'的单个实例不能用于处理多个请求.如果正在使用自定义控制器工厂,请确保它为每个请求创建控制器的新实例.

这是我的控制器工厂中的代码:

public class CastleWindsorControllerFactory : DefaultControllerFactory
    {
        private IWindsorContainer container;

        public CastleWindsorControllerFactory(IWindsorContainer container)
        {
            this.container = container;
        }

        public override IController CreateController(RequestContext requestContext, string controllerName)
        {
            return container.Resolve(controllerName) as IController;
        }

        public override void ReleaseController(IController controller)
        {
            this.container.Release(controller);
        }
    }
Run Code Online (Sandbox Code Playgroud)

有谁知道我需要做什么改变才能使它与RenderAction一起使用?

我也发现错误消息有点奇怪,因为它讨论了多个请求,但是我可以告诉RenderAction实际上并没有创建另一个请求(BeginRequest不再被触发).

c# castle-windsor asp.net-mvc-2

4
推荐指数
1
解决办法
3289
查看次数