我已经看到了关于从虚拟到绝对和url的转换的类似问题和答案,但是如何在不进行手动字符串解析的情况下将URL转换为虚拟路径?
例:
我希望" http://myserver/home.aspx "转换为:"〜/ home.aspx"
我意识到上面的例子将是一个简单的字符串解析例程,但我正在寻找一个适当的解决方案,可以扩展到url格式的更改.
他们都做同样的事情.一种方式更好吗?显然,如果我编写代码,我会知道我做了什么,但其他人如何阅读呢?
if (!String.IsNullOrEmpty(returnUrl))
{
return Redirect(returnUrl);
}
return RedirectToAction("Open", "ServiceCall");
Run Code Online (Sandbox Code Playgroud)
要么
if (!String.IsNullOrEmpty(returnUrl))
{
return Redirect(returnUrl);
}
else
{
return RedirectToAction("Open", "ServiceCall");
}
Run Code Online (Sandbox Code Playgroud) 这是我的问题的快速版本:
当cookie用于其他服务器(在这种情况下是Exchange邮件服务器)时,是否可以以某种方式将cookie设置到客户端的浏览器中?在这种情况下,尝试设置cookie的服务器位于"intranet.myschool.edu",交换服务器位于"owa_server.myschool.edu".
这是完整的问题:
我有一个PHP脚本,它使用cURL对启用了基于表单的身份验证的Exchange服务器进行HTTP POST.
当我成功进行HTTP POST(包括发布网址中的用户/传递),Exchange Server(或更具体地说,https://my.school.edu/exchweb/bin/auth/owaauth.dll文件)输出cookies.具体来说,它输出"sessionid"和"cadata"id.
将这些cookie ID写入服务器上的文本文件后,cURL/PHP可以引用它,然后从Exchange/OWA服务器请求数据(通过webdav等).
那部分有效.我想解决的问题是现在将cookie ID传递给客户端浏览器,以便他们可以使用这些cookie ID自动登录到自己的OWA帐户.
本质上,我希望我们的用户使用他们的Active Directory ID登录我们的Intranet,并查看他们最近的电子邮件的快照.然后,如果他们需要,我会给他们一个小的链接切换到完整的OWA Web应用程序.当这种切换发生时,我不希望他们必须手动登录OWA.由于他们已经在Intranet的前面提交了他们的Active Directory用户名和密码,我希望他们能够自动登录到OWA.
我应该注意,由于我们混合使用Mac OS,Windows和Linux,因此无法使用Windows身份验证尝试进行单点登录.
我以为我能够做一个"setcookie"并分配cURL获得的cookie ID并将它们放入客户端浏览器中.
这不可能吗?是不可能以这种方式"欺骗"Exchange/OWA(或任何其他网站).我有cURL捕获的合法cookie ID.有没有办法将这些传递给另一台计算机上的客户端浏览器?
在最糟糕的情况下,使用Javascript只是自动将用户名和密码粘贴到OWA登录页面是我唯一的希望吗?有没有人对如何避免我的Exchange/OWA双重登录问题有任何其他想法?
感谢您提供的任何帮助!
您将如何从业务逻辑层中的一个方法调用数据访问层中的多个方法,以便所有SQL命令都存在于一个SQL事务中?
可以从BLL中的其他位置单独调用每个DAL方法,因此无法保证数据层方法始终是事务的一部分.我们需要这个功能,所以如果数据库在长时间运行的过程中脱机,就没有提交.业务层基于每个先前调用的结果来编排不同的数据层方法调用.我们只想在整个过程的最后提交(从业务层).
我有一个包含10个数据对象的列表,我希望使用NHibernate插入/更新到数据库.如果一个抛出异常(比如一个主键违规),我想仍然插入/更新另一个9.我将每个对象操作转换为它自己的原子事务,并在有异常时回滚事务.问题是如果事务确实导致异常并被回滚,那么在下一个事务中,Nhibernate会在Nexus.Data.PortfolioCorporateEntity条目中抱错:null id (在发生异常后不要刷新会话)
我的主要计划很简单.它从sessionfactory创建会话,创建数据访问层,对数据对象执行一些操作,然后尝试将这些数据对象持久保存到数据库.
sessionsManager = new NHibernateSessionManager();
session = sessionsManager.GetSession();
DALC = new NHibernateDataProvider(session);
…
foreach (var pce in pces)
{
try
{
DALC.UpdateOrAddObject<PortfolioCorporateEntity>(pce);
}
catch (Exception ex)
{
Console.WriteLine("Could not add Corporate Entity ID " + pce.CorporateEntity.CorporateEntityID.ToString());
}
}
Run Code Online (Sandbox Code Playgroud)
这是我的Nhibernate数据访问层中的updateOrAdd过程,对10个对象称为10次.
public void UpdateOrAddObject<T>(T workObject)
{
using (ITransaction tx = mSession.BeginTransaction) {
try {
mSession.SaveOrUpdate(workObject);
mSession.Flush();
tx.Commit();
}
catch (Exception ex) {
tx.Rollback();
throw;
}
}
}
Run Code Online (Sandbox Code Playgroud)
为了清楚说明,会话由调用程序实例化并传递给数据访问层对象,其构造函数如下所示.
public NHibernateDataProvider(ISession session)
{
mSession = session;
}
Run Code Online (Sandbox Code Playgroud)
除了异常之外,它工作正常,它表示不会在异常后刷新会话.我不确定为什么 - 事务很好地回滚,数据库应该准备接受另一个事务没有?我究竟做错了什么?
我是一名专业的Web开发人员,因此我习惯使用非常高级的脚本语言和测试工具.我最近一直在用C语言工作,为基于unix的系统编写许多C程序来完成各种任务.
但是,我仍然没有进入单元测试此代码的良好沟槽,我想知道C程序员使用什么工具来创建自动化测试以验证代码.
我在C#中有一个List <>对象,我需要一种方法来返回列表中被认为是重复的对象.我不需要Distinct结果集,我需要一个我将从我的存储库中删除的项目列表.
为了这个例子,让我说我有一个"汽车"类型的列表,我需要知道这些汽车中哪一个与列表中的另一个颜色相同.以下是列表中的汽车及其颜色属性:
Car1.Color = Red;
Car2.Color = Blue;
Car3.Color = Green;
Car4.Color = Red;
Car5.Color = Red;
Run Code Online (Sandbox Code Playgroud)
对于这个例子,我需要结果(IEnumerable <>,List <>或其他)来包含Car4和Car5,因为我想从我的存储库或数据库中删除这些,这样我的存储库中每种颜色只有一辆汽车.任何帮助,将不胜感激.
有一个带有复选框的表单很常见,表示"使用foo"后面紧跟一个文本框,用户可以在其中输入他想要使用的"foo值".当然,只有选中"使用foo"时,此文本框才有用
我不知道处理这种情况的最佳方法:
我可以遵循最佳做法吗?
是否有一般方法使用JavaScript实现应用程序的一部分并提供与服务器的持久连接?我需要服务器能够将数据推送到客户端,无论客户端是否在防火墙后面.提前致谢
c# ×3
.net ×1
asp.net ×1
c ×1
coding-style ×1
connection ×1
cookies ×1
curl ×1
javascript ×1
lambda ×1
linq ×1
logonserver ×1
nhibernate ×1
objective-c ×1
path ×1
persistence ×1
php ×1
sql ×1
unit-testing ×1
url ×1
usability ×1
virtual-path ×1
winforms ×1