更新:重写简洁......
使用ASP.NET MVC项目,是否可以将web.config重写规则优先于MVC的RegisterRoutes()调用,或者IgnoreRoute只针对特定域调用?
我有一个MVC应用程序接受多个域(mydomain.com和otherdomain.com)上的流量,应用程序根据请求的主机(即它是多租户)提供不同的内容.
我在web.config中配置了URL重写(反向代理),它只应用于特定主机:
<rule name="Proxy" stopProcessing="true">
<match url="proxy/(.*)" />
<action type="Rewrite" url="http://proxydomain.com/{R:1}" />
<conditions logicalGrouping="MatchAll">
<add input="{HTTP_HOST}" pattern="^(mydomain\.com|www\.mydomain\.com)$" />
</conditions>
<serverVariables>
<set name="HTTP_X_UNPROXIED_URL" value="http://proxydomain.com/{R:1}" />
<set name="HTTP_X_ORIGINAL_ACCEPT_ENCODING" value="{HTTP_ACCEPT_ENCODING}" />
<set name="HTTP_X_ORIGINAL_HOST" value="{HTTP_HOST}" />
<set name="HTTP_ACCEPT_ENCODING" value="" />
</serverVariables>
</rule>
Run Code Online (Sandbox Code Playgroud)
但是,MVC应用程序似乎只会尊重web.config配置的路由,如果它们从应用程序的RegisterRoutes()方法中被忽略:
routes.IgnoreRoute("proxy");
Run Code Online (Sandbox Code Playgroud)
然而,遗憾的是,将忽略应用于两个域.建议非常感谢...
我想利用某种形式的"简单"加密,这种加密相当安全,但对开发过程的影响非常低.
假设我在客户端<> Web服务情况下拥有对话的双方.我的应用程序是Windows phone/win8/silverlight /桌面应用程序,服务器是ASP.Net MVC或WebAPI.
在我看来,我想要一些简单的事情: -
<security encryption="off|sometype|someothertype">
<privatekey>12345MyKey54321</privatekey>
</security>
Run Code Online (Sandbox Code Playgroud)
作为客户端和服务器上的某种形式的配置参数.此外,身份验证例程将返回并存储某种形式的公钥.
这样做将启用"加密模式",并使用提供的密钥以任何方式加密和散列任何http请求.如果没有密钥和解密方法,最终结果是在本地,代理或远程计算机上嗅到的任何东西都将无法查看数据.在服务器上,在按下控制器操作之前,使用相同的密钥解密数据.
除了交换HttpRequest/WebClient调用类似于EncryptedHttpRequest之类的东西并在MVC/WebAPI方面添加适当的钩子之外,所有其他客户端代码和控制器操作都会对数据被加密的事实一无所知.
我错过了什么或者设置不是这么简单吗?没有我搜索过的,没有任何东西可以提供这种简洁程度,所以我认为我的逻辑中缺少一些差距?
我正在尝试启用Windows身份验证以在本地开发,根据标题:
通过项目属性,我将Windows身份验证设置为已启用,并将匿名身份验证设置为已禁用.
在web.config我设置:
<authentication mode="Windows" />
Run Code Online (Sandbox Code Playgroud)
但是,在运行该站点时,我不断提示输入凭据.输入Windows 8或本地帐户凭据似乎没有任何区别,我已将这些帐户设置为对该文件夹具有完全权限.
任何建议都感激不尽!
更新1: 正如Darin Dimitrov所建议的,我创建了一个空白的MVC项目并选择了Intranet模板.将匿名授权设置为禁用并启用Windows身份验证后,此测试项目完全按预期工作(输入时提示输入凭据可提供对站点的访问权限).我将相同的授权配置应用到我的Orchard项目web.config:
<authentication mode="Windows" />
<authorization>
<deny users="?" />
</authorization>
Run Code Online (Sandbox Code Playgroud)
但仍然没有快乐,我按照预期提示输入凭据,但我输入的内容似乎并未授权用户.我已经对下面的两个web.conf进行过贴牌,以防有人能指出我缺少的东西吗?
我已连接到一些数据库,只连接一次,但永远不需要再次连接,但是它们会使选择的登录下拉混乱.
如何从SQL Server Management Studio Express 2008中的连接提示重置服务器和登录列表?
asp.net-mvc ×3
orchardcms ×2
asp.net ×1
iis ×1
iis-express ×1
security ×1
sql-server ×1
windows-8 ×1