如果方法名称以"Try"开头,我们正在与我们的同事讨论它意味着什么.
有以下意见:
什么是官方定义?"尝试"在方法名称中说什么?有关于此的官方指南吗?
我有几个Web应用程序在带有IIS 6.0的Windows Server 2003上运行.
这些应用程序在Asp.net 2.0下运行.
最近我安装了一个基于asp.net 4的MVC 3 Web应用程序.表单票证未在此新应用程序中重新定位.
我在使用此链接创建的不同asp.net版本的machine.config文件中具有相同的machineKey设置:http://aspnetresources.com/tools/machineKey
登录Web应用程序中的配置如下所示:
<authentication mode="Forms">
<forms name=".WEBAUTH"
loginUrl="login.aspx"
protection="None"
slidingExpiration="true"
enableCrossAppRedirects="false"
timeout="43200"
path="/" />
</authentication>
Run Code Online (Sandbox Code Playgroud)
因此,mvc应用程序的配置是:
<authentication mode="Forms">
<forms name=".WEBAUTH"
loginUrl="http://path2theloginapp/login.aspx"
protection="None"
slidingExpiration="true"
enableCrossAppRedirects="false"
timeout="43200"
path="/" />
</authentication>
<authorization>
<deny users="?" />
<allow users="*" />
</authorization>
Run Code Online (Sandbox Code Playgroud)
登录有效,但mvc应用程序始终重定向回登录页面.
现在,如果我将IIS配置中的登录Web应用程序的asp.net版本更改为asp.net 4.0,它可以正常工作.但是,然后在asp.net 2上运行的所有其他应用程序都无法运行.
有没有人在类似的情况下解决了基于表单的身份验证?
根据Ayende的这篇文章,我创建了以下索引定义
public class ProductsSearch : AbstractIndexCreationTask<Product, ProductsSearch.Result>
{
public class Result
{
public string Query { get; set; }
}
public ProductsSearch()
{
Map = products => from product in products
select new
{
Query = new object[]
{
product.Title,
product.Tags.Select(tag => tag.Name),
product.Tags.SelectMany(tag => tag.Aliases, (tag, alias) => alias.Name)
}
};
Index(x => x.Query, FieldIndexing.Analyzed);
}
}
Run Code Online (Sandbox Code Playgroud)
一个区别是我必须使用SelectMany语句来获取标记的别名.标签可以有多个别名(即标签:鼠标别名:指点设备)
我不知道为什么SelectMany行会破坏索引.如果我删除它,索引工作.