我见过一些类似的问题,但没有一个看起来像我正在尝试做的事情.
这是我当前的实施,没有任何安全性:
<div id="menucontainer">
<ul id="menu">
<li><%= Html.ActionLink("Main List", "Index", "AController")%></li>
<li><%= Html.ActionLink("Product List", "Index", "BController")%></li>
<li><%= Html.ActionLink("Company List", "Index", "CController")%></li>
<li><%= Html.ActionLink("User List", "Index", "DController")%></li>
</ul>
</div>
Run Code Online (Sandbox Code Playgroud)
这很好,以上工作.我在Actions for CController和DController上设置[授权]属性以防止未经授权的访问 - 但我想从菜单中删除那些没有正确角色的用户,因为当他们看到它并点击时在它上面它告诉他们他们没有许可,他们会想要它.如果他们不知道那里,那对所有参与者来说都更好......
这样的事情最终是我想要达到的目标,但我正在寻找更多MVC风味的方法,其中"视图"是"愚蠢的":
<div id="menucontainer">
<ul id="menu">
<li><%= Html.ActionLink("Main List", "Index", "AController")%></li>
<li><%= Html.ActionLink("Product List", "Index", "BController")%></li>
<% If(Role = Roles.Admin) { %>
<li><%= Html.ActionLink("Company List", "Index", "CController")%></li>
<li><%= Html.ActionLink("User List", "Index", "DController")%></li>
<% } %>
</ul>
</div>
Run Code Online (Sandbox Code Playgroud) 我有一个Asp.net MVC 3应用程序,我想让用户使用它而不必在IIS中运行它来运行它.
我想要的是他们点击的某种可执行文件或托管应用程序的服务,然后他们可以从网络上的任何浏览器使用它.
我有什么选择?
我在一个系统中有一个场景,我尽可能地尽量简化.我们有一个(让我们称之为)人工制品的表格,可以通过任意数量的安全角色访问人工制品,安全角色可以访问任意数量的人工制品.因此,我们在数据库中有3个表 - 一个描述人工制品,一个描述角色,一个多对多关联表将人工制品ID与角色ID相关联.
在领域方面,我们有两个类 - 一个用于角色,一个用于人工制品.artefact类具有IList属性,该属性返回可以访问它的角色列表.(但是角色不提供获取可以访问的人工制品的属性).
因此,人工制品的nhibernate映射包含以下内容:
<bag name="AccessRoles" table="ArtefactAccess" order-by="RoleID"
lazy="true" access="field.camelcase-underscore" optimistic-lock="false">
<key column="ArtefactID"/>
<many-to-many class="Role" column="RoleID"/>
</bag>
Run Code Online (Sandbox Code Playgroud)
这一切都运行良好,如果我删除一个人工制品,关联表将被适当地清理,删除的人工制品和角色之间的所有引用都将被删除(虽然正确地删除了角色 - 因为我们不想删除孤儿).
问题是 - 如何删除角色并让它自动清除关联表.如果我目前尝试删除一个角色,我会得到一个引用约束,因为该角色的关联表中仍有条目.成功删除角色的唯一方法是查询链接到该角色的所有人工制品,从人工制品的角色集合中删除角色,更新人工制品然后删除角色 - 效率不高或不好,特别是在非简化的系统,角色可以与任何数量的其他表/对象相关联.
我需要能够向NHibernate提示我希望每当我删除一个角色时都要清除这个关联表 - 这是可能的,如果可以的话 - 我该怎么做?
谢谢你的帮助.
我的文档中有一些ajax调用.ready()
喜欢 :
for (j=1; j <= 7; j++){
(function(index) {
$.getJSON('my.php', {id:index},
function(data) {
$.each(data, function(index2, array){
........
});
});
})(j)
}
//DO NOT CONTINUE UNTIL FINISH AJAX CALLS
........
MORE JQUERY CODE
Run Code Online (Sandbox Code Playgroud)
我怎么能强迫它等待而不是继续,直到我们从ajax请求得到所有回调?
我正在尝试使用loopj来进行异步 HTTP请求.工作得很好,除非我尝试使用自签名证书访问https站点.我明白了
javax.net.ssl.SSLPeerUnverifiedException: No peer certificate.
Run Code Online (Sandbox Code Playgroud)
我想默认的ssl选项可以覆盖使用setSSLSocketFactory(SSLSocketFactory sslSocketFactory)方法,但我不知道该怎么做,或者它可能根本不是正确的方法.
请建议我该如何解决这个问题?
是否可以编写代码模板或代码片段,它将执行以下操作:
我有一个声明如下的属性:
public string String1 {get;set;}
Run Code Online (Sandbox Code Playgroud)
我希望reshaprer自动生成以下内容:
private string _string1;
public string String1
{
get
{
return _string1;
}
set
{
if (_string1 != value)
{
_string1 = value;
RaisePropertyChanged(() => String1);
}
}
}
Run Code Online (Sandbox Code Playgroud)
刚刚阅读了http://koder.wordpress.com/2010/03/25/resharper-inotifypropertychanged/文章,并创建了新的实时模板,可以为我想要的新属性插入代码.
是否可以以这种方式设置此模板,它可以出现在Alt + Enter菜单中,就像光标在属性声明上的建议一样
喜欢:
{Access modifiers} **{Type} {Name}** {Possible get;set; statements}
Run Code Online (Sandbox Code Playgroud) 我正在运行NServiceBus 3.0.0 rc2但是当我启动应用程序(作为本地管理员)而没有预先创建MSMQ时,它出错了:
队列不存在或您没有足够的权限来执行操作.
使用NServiceBus 2.6没有发生这种情况.
以下是我的配置:
var bus = Configure.With()
.Log4Net()
.NinjectBuilder()
.XmlSerializer()
.DefiningCommandsAs(t => typeof(ICommand).IsAssignableFrom(t))
.DefiningEventsAs(t => typeof(IEvent).IsAssignableFrom(t))
.DefiningMessagesAs(t => typeof(IMessage).IsAssignableFrom(t))
.MsmqTransport()
.DefineEndpointName("subscriber.input")
.IsTransactional(true)
.PurgeOnStartup(false)
.UnicastBus()
.LoadMessageHandlers()
.ImpersonateSender(false)
.CreateBus()
.Start();
Run Code Online (Sandbox Code Playgroud)
和
<configuration>
<configSections>
<section name="MsmqTransportConfig" type="NServiceBus.Config.MsmqTransportConfig, NServiceBus.Core" />
<section name="UnicastBusConfig" type="NServiceBus.Config.UnicastBusConfig, NServiceBus.Core" />
</configSections>
<MsmqTransportConfig ErrorQueue="error" NumberOfWorkerThreads="1" MaxRetries="5" />
<UnicastBusConfig>
<MessageEndpointMappings>
<add Messages="MyEvents" Endpoint="publisher.input" />
</MessageEndpointMappings>
</UnicastBusConfig>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/>
</startup>
</configuration>
Run Code Online (Sandbox Code Playgroud)
我可以看到一个配置扩展方法来禁用自动创建队列但没有启用它.
如果我预先创建队列,它工作正常.
如果你在CRD的DDD应用程序之上有一个REST层,你会让REST层吐出域模型(就数据而言)(比如GET)吗?
c# ×6
.net ×2
asp.net-mvc ×2
ajax ×1
android ×1
asp.net ×1
git ×1
hudson ×1
iis ×1
javascript ×1
jenkins ×1
jquery ×1
loopj ×1
many-to-many ×1
msmq ×1
nhibernate ×1
nservicebus ×1
resharper ×1
rest ×1
rhino-mocks ×1
security ×1
unit-testing ×1
wait ×1