我正在尝试从数字证书中读取自定义扩展程序.我知道值是在DER中编码的GeneralString.有没有一种简单的方法来正确解码它并获得Java String?我尝试了以下内容,但是's'包含了一些编码元数据作为字符串开头的垃圾字符.
byte[] ext = cert.getExtensionValue("1.2.3.4");
String s= new String(ext);
System.out.println(s);
Run Code Online (Sandbox Code Playgroud)
有没有快速简便的方法来做到这一点?或者我真的需要使用一些完整的ASN.1库吗?
谢谢!
我正在构建一个需要脱机工作的Web应用程序.该系统用于捕获销售交易.大部分"离线"部分相当简单 - 我只需要在本地存储数据并在我回到网络时同步它.到现在为止还挺好.
问题在于身份验证.该应用程序将在具有单个OS用户帐户的共享计算机上运行.如果我处于离线状态,我该如何对用户进行身份验证?
用户自己没有我需要隔离的任何私人数据(即,我不必在客户端上彼此保护它们).我需要能够验证他们的密码,这样即使连接断开,我也可以让不同的用户全天登录.
我正在考虑的一种方法是在IndexedDB中在客户端缓存密码哈希.只允许一组有限的用户从特定的共享计算机登录,因此我不需要在本地缓存我的整个密码数据库.假设我有一个良好的密码策略(复杂性和到期要求),并且哈希本身是安全的(bcrypt),这个想法多么可怕?
我还有其他选择吗?
我正在使用Url.IsLocalUrl检查传递给我的身份验证操作的返回URL是否是本地的.只要URL中没有片段,它就可以正常工作.也就是说,
/t/test-team-3/tasks/lists/15返回true,但/t/test-team-3/tasks#/lists/15返回false.
这背后的原因是什么?是否有一些模糊的安全问题可能会在片段中出现,或者我可以在检查URL是否为本地时安全地忽略该片段?
我有一个应用程序可以点击BeginRequest并EndRequest设置和拆除NHibernate会话,如下所示:
BeginRequest += delegate
{
CurrentSessionContext.Bind(SessionFactory.OpenSession());
};
EndRequest += delegate
{
var session = CurrentSessionContext.Unbind(SessionFactory);
session.Dispose();
Container.Release(session);
};
Run Code Online (Sandbox Code Playgroud)
这在IIS中部署时工作正常,直到我检查"需要SSL"框.一旦我这样做,我得到NullReferenceException的session.Dispose().
我还没有对此进行调试,是的,修复是微不足道的,但我只是对"需要SSL"如何影响请求的生命周期感到好奇.在这些情况下,服务器上是否未设置会话?
编辑:只是为了澄清,我指的是应用程序的IIS配置中的"需要SSL"选项,而不是RequireHttps控制器的属性.
当我where在CMD中运行时,我得到输出:
C:\Users\Ragesh> where calc
C:\Windows\System32\calc.exe
Run Code Online (Sandbox Code Playgroud)
但在PS中同样的事情:
PS C:\data\code> where calc
PS C:\data\code>
Run Code Online (Sandbox Code Playgroud)
输出在哪里?!
我正在使用Amazon .NET SDK生成预先签名的URL,如下所示:
public System.Web.Mvc.ActionResult AsActionResult(string contentType, string contentDisposition)
{
ResponseHeaderOverrides headerOverrides = new ResponseHeaderOverrides();
headerOverrides.ContentType = contentType;
if (!string.IsNullOrWhiteSpace(contentDisposition))
{
headerOverrides.ContentDisposition = contentDisposition;
}
GetPreSignedUrlRequest request = new GetPreSignedUrlRequest()
.WithBucketName(bucketName)
.WithKey(objectKey)
.WithProtocol(Protocol.HTTPS)
.WithExpires(DateTime.Now.AddMinutes(6))
.WithResponseHeaderOverrides(headerOverrides);
string url = S3Client.GetPreSignedURL(request);
return new RedirectResult(url, permanent: false);
}
Run Code Online (Sandbox Code Playgroud)
这非常有效,除非我的中contentType包含一个+.当我尝试获取SVG文件(例如,获取内容类型)时会发生这种情况image/svg+xml.在这种情况下,S3会抛出SignatureDoesNotMatch错误.
错误消息显示StringToSign如下:
GET 1234567890 /blah/blabh/blah.svg?response-content-disposition=filename="blah.svg"&response-content-type=image/svg xml
Run Code Online (Sandbox Code Playgroud)
请注意,response-content-type中有一个空格,现在它image/svg xml代替的是image/svg+xml.在我看来,这就是导致问题的原因,但是解决这个问题的正确方法是什么?
我应该编码我的内容类型吗?用引号或其他东西括起来?文档没有说明这一点.
我有一个控制器覆盖OnActionExecuting并做这样的事情:
protected override void OnActionExecuting(ActionExecutingContext filterContext)
{
base.OnActionExecuting(filterContext);
string tenantDomain = filterContext.RouteData.Values["tenantDomain"] as string;
if (!string.IsNullOrWhiteSpace(tenantDomain))
{
using (var tx = BeginTransaction())
{
this.Tenant = repo.FindOne(t => t.Domain == tenantDomain);
}
}
}
Run Code Online (Sandbox Code Playgroud)
Tenant是一个受保护的财产与私人二传手.该类本身是我的真实控制器派生的抽象基本控制器.我在其他控制器中的代码看起来很像这样:
if (Tenant == null)
{
// Do something
}
else
{
// Do something else
}
Run Code Online (Sandbox Code Playgroud)
我该如何测试这段代码?我需要做的是以某种方式设置租户属性,但我不能,因为:
改变可见度Tenant并不"感觉"正确.我对派生控制器进行单元测试的替代方案是什么?
这可能是一个非常基本的问题,但我对Java中的泛型非常陌生,而且我很难用C#中的事情来改变我的思维过程,所以请耐心等待.
我正在尝试用Java构建一个通用存储库.我创建了一个如下所示的IRepository接口:
public interface IRepository<T extends IEntity>
Run Code Online (Sandbox Code Playgroud)
还有一个看起来像这样的Repository类:
public class Repository<T extends IEntity> implements IRepository<T>
Run Code Online (Sandbox Code Playgroud)
现在,从我的Repository类的构造函数中,我希望能够"确定"T的确切类型.例如,如果我实例化了这样的存储库:
IRepository<MyClass> repo = new Repository<MyClass>();
Run Code Online (Sandbox Code Playgroud)
我想知道T实际上是MyClass.这在C#中是微不足道的,但显然泛型是Java中完全不同的野兽,我似乎无法找到任何可以帮助我做到这一点的东西.
我正试图在Orchard中重现这种布局.到目前为止,我已经通过在我的博客帖子详细信息(Content-BlogPost.Detail.cshtml)中使用替代方案来解决大部分问题.问题是我创建的布局看起来像这样:

我的第一个问题是,这种布局是否有意义?有没有更好的方法来完成这个结果(也就是说,使档案显示与内容一致)?
其次,有没有办法从备用内部渲染区域(或小部件)?我尝试过@Display(Model.Archives),Archives我的区域的名称在哪里,但显然博客详细信息模型没有定义Archives属性.我还考虑过手动调用Blog Archives的形状
@Display(New.Parts_Blogs_BlogArchives(new { Blog: blog, Archives: ???})
Run Code Online (Sandbox Code Playgroud)
但我不知道如何填充第二个论点.
在Orchard中进行这种布局的正确方法是什么?
我有一个ASP.NET MVC 3应用程序,它使用Windsor注入存储库和NHibernate会话.今天,我第一次打了一个OutOfMemoryException.起初我以为可能是因为我没有发布Transient温莎创造的任何物品.作为一个快速的实验,我将所有这些变成了PerWebRequest生活方式,但它似乎并没有大大影响内存使用模式 - 它仍然在不断上升.
当我的托管堆大小稳定时(使用Perfmon验证),什么可能导致IISExpress专用字节继续上升?
什么是调试这个的正确工具?我假设CLR分析器可能没有帮助,因为Perfmon没有在托管堆中显示任何泄漏.
asp.net-mvc ×3
c# ×3
java ×2
amazon-s3 ×1
asn.1 ×1
asp.net ×1
controller ×1
decoder ×1
email ×1
generics ×1
glimpse ×1
html5 ×1
iis-7 ×1
javascript ×1
offline ×1
open-source ×1
orchardcms ×1
powershell ×1
razor ×1
reflection ×1
requiressl ×1
ssl ×1
unit-testing ×1