相关疑难解决方法(0)

ASP.NET MVC Url Route支持(点)

我希望你能帮我解决下面的问题.

我在IIS7上使用ASP.NET MVC 3,并希望我的应用程序支持带点的用户名.

示例:http://localhost/john.lee

这就是我的Global.asax的样子:(http:// localhost / {username})

routes.MapRoute(
    "UserList",
    "{username}",
    new { controller = "Home", action = "ListAll" }
);
Run Code Online (Sandbox Code Playgroud)

当我访问其他页面时,应用程序工作,例如http://localhost/john.lee/details等.

但主用户页面不起作用,我希望该应用程序像支持http://www.facebook.com/john.lee的 Facebook一样工作.

我使用下面的代码,它根本不适合我:

<httpRuntime relaxedUrlToFileSystemMapping="true" />
Run Code Online (Sandbox Code Playgroud)

我能够使用下面的代码并让应用程序接受点,但我绝对不希望使用下面的代码有很多不同的原因,请告诉我有一种方法来克服这个问题.

<modules runAllManagedModulesForAllRequests="false" />
Run Code Online (Sandbox Code Playgroud)

asp.net iis-7 url-routing global-asax asp.net-mvc-3

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

ASP.NET(MVC)服务图像

我正在创建一个MVC 3应用程序(尽管适用于其他技术,例如ASP.NET Forms),并且只是想知道是否可行(性能明智)从代码提供图像而不是使用直接虚拟路径(如通常那样).

我的想法是,我改进了提供文件的常用方法:

  1. 应用安全检查
  2. 基于路由值提供文件的标准化方法
  3. 返回修改后的图像(如果请求),例如不同的尺寸(确定这只会谨慎使用,所以不要将其与上面的性能问题联系起来).
  4. 在允许访问资源之前执行业务逻辑

我知道怎么做,但我不知道我应该这样做.

  1. 有什么性能问题(如果有的话)
  2. 是否有奇怪的事情发生,例如图像只是按顺序加载(也许这就是HTML目前我不确定的方式 - 在这里暴露我的无知).
  3. 你能想到的任何其他东西.

希望这一切都有意义!

谢谢,丹.

UPDATE

好的 - 让我们具体:

使用这种类型的方法使用内存流为MVC 3中的所有图像提供服务有什么性能影响?注意:图片网址是GenericFetchImage/image1(为简单起见 - 我的所有图片都是jpegs).

public FileStreamResult GenericFetchImage(string RouteValueRefToImage)
{
    // Create a new memory stream object
    MemoryStream ms = new MemoryStream();

    // Go get image from file location
    ms = GetImageAndPutIntoMemoryStream(RouteValueRefToImage);

    // return the output as a file
    return new FileStreamResult(ms, "image/jpeg");
 }
Run Code Online (Sandbox Code Playgroud)

我知道这种方法有效,因为我使用它来根据验证码图像的会话值动态生成图像.它非常整洁 - 但我想使用这种方法进行所有图像检索.

我想我在上面的例子中想知道这是否可行,或者是否需要更多处理才能执行,如果是,那么多少?例如,如果访问者的数量乘以1000,那么服务器是否会在交付图像时处理负担.

谢谢!

asp.net asp.net-mvc image

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

ASP.NET MVC中的静态文件授权与Owin

我需要保护整个静态HTML文件的文件夹.目的是用户无法访问这些文件,除非他们经过身份验证并具有必要的角色.

我们已经使用OWIN设置了基于cookie的身份验证,但无论我尝试什么,我似乎都无法找出要对文件夹进行身份验证的更改的正确组合.

第一个问题是IIS完全跳过ASP.NET而只是提供文件.我认为通过将runAllManagedModulesForAllRequests设置为true可能有办法解决这个问题.但是我从哪里去?

我已经尝试在Web.config中填充元素以要求适当的角色,但它只会导致每个请求被拒绝(可能是因为它没有检查正确的cookie或其他东西).

我花了一整天的时间在这上面,我即将失去理智.

有人解决了这个问题吗?

asp.net asp.net-mvc authorization static-files owin

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

ASP.NET MVC路由用于具有多个子目录的文件

我需要设置一个文件处理程序来路由多个子目录,如tihs;

http://localhost/images/7/99/786936215595.jpg
Run Code Online (Sandbox Code Playgroud)

我试着把它放在global.asax文件中;

 routes.Add(
   "ImageRoute",
   new Route("covers/{filepath}/{filename}",
   new ImageRouteHandler()));
Run Code Online (Sandbox Code Playgroud)

我正在使用本问题中的ImageHandler ,如果您有一个子目录(即'/ images/15/786936215595.jpg'),它会很有用,但是当您有多个目录时会失败.

我尝试设置一个通配符,但没有用(即'new Route("cover/{filepath}/*/{filename}"')

这是来自大型NAS的图像(想想像300万张图像)所以它不像我只能移动文件.

谢谢!

asp.net routing asp.net-mvc-2

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