小编Oma*_*mar的帖子

在控制器构造函数中使用User.Identity.Name定义用户

对于我将要与用户帐户进行交互的操作,我想创建一个"TheUser"对象,除了在调用我的控制器上的任何操作时将该对象添加到"ViewData ["TheUser"]".

如果用户已登录,它将从数据库中获取用户的信息,否则,"TheUser"对象将为空.

我尝试在控制器构造函数中访问"User.Identity.Name",但是在调用任何操作之前不会创建它.

我正在查看自定义授权过滤器,但那些不允许我创建"TheUser"对象并将其存储在ViewData中.

这是我想要完成的一个简短的片段:

[Authorize]
public class HomeController : Controller
{
    User TheUser;

    public HomeController()
    {
        TheUser = User.Identity.IsAuthenticated ? UserRepository.GetUser(User.Identity.Name) : null;

        ViewData["TheUser"] = TheUser;  
    }
}
Run Code Online (Sandbox Code Playgroud)

c# asp.net-mvc authorization

8
推荐指数
2
解决办法
1万
查看次数

使用jQuery将元素样式设置为:hover样式

是否可以(使用jQuery或其他方式)将某个元素的:hover样式设置为样式表中定义的样式?

.regStyle {
   background-color: #000;
}

.regStyle:hover {
   background-color: #fff;
} 

Trying it out

$("#differentButton").click(function(){
    // this doesn't work 
    $("#someElement").addClass("regStyle:hover").remove("regStyle");
});
Run Code Online (Sandbox Code Playgroud)

css jquery

8
推荐指数
1
解决办法
2万
查看次数

存档数千个文件和7zip限制

我的应用程序要求每天运行一个任务,其中需要压缩100,000多个PDF(每个~50kb)文件.目前,我正在使用7-zip和调用7za.exe(带有7-zip的命令行工具)来压缩每个文件(文件位于许多不同的文件夹中).

这种方法有哪些局限性,如何解决?7zip存档是否有文件大小或文件数限制?

c# 7zip

8
推荐指数
1
解决办法
8413
查看次数

MVC RoleProvider和Authorize属性

我已经实现了自己的角色提供程序,而我没有使用默认的角色提供程序.它的工作原理是,它可以告诉某人应该或不应该能够查看页面.

但是,它可以执行以下操作:

  1. 如果用户未登录,请重定向到我的登录页面
  2. 如果用户已登录但没有正确的角色,请重定向到其他页面

我还没有弄清楚如何使用Authorize属性执行此操作,我只有:

[Authorize(Roles="Admin")]
Run Code Online (Sandbox Code Playgroud)

基本上我需要根据授权的哪个部分失败重定向到不同的页面.

我已经看过它是否是web.config中的内容,但没有明显的跳出来.

c# asp.net-mvc-2

8
推荐指数
2
解决办法
5482
查看次数

Oracle存储过程和自定义数据类型

我有一个Oracle存储过程,它接受两个参数:自定义数据类型和字符串.

在Oracle中调用存储过程,我会执行以下操作:

EXECUTE MY_STORED_PROCEDURE(MYTYPE_T(99, 231), 'mystring')
Run Code Online (Sandbox Code Playgroud)

如何使用C#执行此操作?我知道我需要将命令设置为存储过程,但如何将第一个参数指定为自定义数据类型?

更新:

MYTYPE_TTABLE OF NUMBER通过创建

CREATE OR REPLACE TYPE mytype_t AS TABLE OF NUMBER ; 
Run Code Online (Sandbox Code Playgroud)

c# oracle ado.net

7
推荐指数
1
解决办法
9227
查看次数

单点登录,有2个子域,一个Java,一个.NET

我目前正在为上述问题寻找一个很好的解决方案.我们可能会在.NET上运行表单身份验证.

我运行了一个ASP.NET MVC应用程序,a.mydomain.com并运行了一个基于Java的应用程序b.mydomain.com.

什么是最好的方法,这样我就不必登录每个应用程序.比如,当我登录a.mydomain.com然后打开Java时b.mydomain.com,它会检查并看到我已经登录了?

WCF AuthenticationService类是否适用于此?我可以从JavaScript中做一个AJAX请求b.mydomain.com来检查我是否已经在.NET应用程序中登录了吗?

c# asp.net-mvc forms-authentication

7
推荐指数
1
解决办法
1182
查看次数

始终使用AutoFixture,XUnit和Moq冻结模拟

我正在使用AutoFixture,Moq和XUnit扩展([Theory]属性),如本博客文章http://blog.ploeh.dk/2010/10/08/AutoDataTheorieswithAutoFixture中所述.

我注意到大多数单元测试看起来像这样:

[Theory, AutoMoqData]
public void Test(
    [Frozen] Mock<IServiceOne> serviceOne,
    [Frozen] Mock<IServiceTwo> serviceTwo,

    MyClass classUnderTest)
{
    // Arrange
    serviceOne
        .Setup(m => m.Get(It.IsAny<int>()));

    serviceTwo
        .Setup(m => m.Delete(It.IsAny<int>()));

    // MyClass has a constructor with arguments for IServiceOne, and IServiceTwo
    // classUnderTest will use the two mocks specified above

    // Act
    var result = classUnderTest.Foo();

    // Assert
    Assert.True(result);
}
Run Code Online (Sandbox Code Playgroud)

与总是装饰模具相反[Frozen],是否有办法设置夹具以始终冻结模具?

这是AutoMoqData属性:

public class AutoMoqDataAttribute : AutoDataAttribute
{
    public AutoMoqDataAttribute()
        : base(new Fixture().Customize(new AutoMoqCustomization()))
    {
    } …
Run Code Online (Sandbox Code Playgroud)

c# unit-testing moq xunit.net autofixture

7
推荐指数
1
解决办法
3225
查看次数

提交空字段时实体框架错误

VS 2010 Beta 2,.NET 4.

在我的ASP.NET MVC 2应用程序中,当我将表单提交给接受实体框架创建的对象的操作方法时,我收到以下错误:

Exception Details: System.Data.ConstraintException: This property cannot be set to a  
null value.

Source Error: 


Line 4500:                OnTextChanging(value);
Line 4501:                ReportPropertyChanging("Text");
Line 4502:                _Text = StructuralObject.SetValidValue(value, false);
Line 4503:                ReportPropertyChanged("Text");
Line 4504:                OnTextChanged();
Run Code Online (Sandbox Code Playgroud)

该属性称为"Text",在MS SQL 2008中的类型为"text NOT NULL".

我的操作将检查值是否为nullorempty,如果是,则会添加模型错误,但是一旦我提交表单,我就会收到错误.

.net-4.0 .net-4.0-beta-2 asp.net-mvc-2

6
推荐指数
1
解决办法
8443
查看次数

Visual Studio多项目模板重命名名称空间和项目名称

我已经成功创建了一个多项目解决方案模板.但是,我想要做的是使用解决方案的名称重命名每个项目的开头.

所以我的项目:

  • ProjectOne.A
  • ProjectTwo.B

将被重命名为

  • SolutionName.A
  • SolutionName.B

SolutionName用户在创建项目时的名称在哪里.

我读过以下文章:

但似乎没有人回答我的具体情况.

templates visual-studio-2010 project-template visual-studio-templates

6
推荐指数
1
解决办法
3689
查看次数

使用IoC,可以向Singleton注入具有瞬态寿命的对象吗?

我们有一个ASP.NET MVC应用程序,使用IoC将服务引用注入控制器,将存储库引用注入服务.

控制器必须具有瞬态寿命,因为它们必须根据请求进行实例化.但是,如果整个IoC堆栈按请求进行新增,则会产生一些开销.我们有比我想要的更多的依赖项,一个选项是拥有更多的控制器,每个控制器在堆栈中具有更少的依赖性.但是,暂时把它放在一边,我的问题是,如果一个注入单身的对象具有一个具有瞬态生命周期的依赖关系,那么这些依赖关系是否会因为被Singleton拥有而被视为单身?

具体来说,如果我们有以下内容

RepositoryA(需要是瞬态的,因为当前设计在构造函数中注入用户上下文)ServiceA(单例)ControllerA(瞬态)

实例化如下:

public ServiceA(IRepositoryA repo) {}
public ControllerA(IServiceA service) {}
Run Code Online (Sandbox Code Playgroud)

RepositoryA实际上是否会被实例化一次因为ServiceA被实例化一次?

我99%肯定答案是肯定的,但只想确认我必须在这里做的重构数量.

另外,假设服务和存储库没有任何用户/请求特定的实例变量,作为一种设计方法,是否有任何理由不对它们使用Singleton生命周期?

asp.net-mvc dependency-injection ioc-container

6
推荐指数
1
解决办法
1565
查看次数