我有一个使用BasicHttpBinding和Windows身份验证的WCF服务.大多数客户端都是域帐户,并使用其默认凭据连接到服务.
现在,我想从在本地帐户下运行的ASP.NET客户端连接到该服务.我想使用ASP.NET应用程序可用的Windows凭据(域\用户和密码)连接到WCF服务.
我知道我可以使用ClientBase <T> .ClientCredentials在代码中执行此操作.
有没有办法在客户端的web.config文件中指定凭据(域\用户和密码),所以我不必更改代码?
编辑
如果无法在配置文件中完成,是否有办法使用System.Net.ICredentials或System.Net.NetworkCredential作为WCF服务的凭据?
.NET Framework提供了这些作为提供网络凭据的同类方式,但是对于WCF,这似乎已经被抛弃,而不是基于不相关的System.ServiceModel.Description.ClientCredentials类的新的不兼容系统.
编辑2
接受Marc对原始问题的回答 - 似乎在客户端配置文件中没有办法做到这一点:(
我认为这是WCF的一个缺陷 - 我不接受微软应该故意阻止我们在配置文件中放置凭据 - 毕竟它们必须存储在某个地方,而Framework包含加密配置文件的工具.我想我可以为此创建一个自定义的BehaviorExtensionElement,但它应该是开箱即用的.
它也有点不一致:system.net/mailSettings/smtp/network配置元素允许指定凭据,为什么不WCF?
关于使用System.Net.NetworkCredential的第二个问题,从这个博客看来,至少在使用Windows身份验证时,可以使用以下代码:
factory.Credentials.Windows.ClientCredential =
new System.Net.NetworkCredential(name, password, domain);
Run Code Online (Sandbox Code Playgroud) 我正在尝试访问同一域/同一个asp.net应用程序的网页,这是受密码保护的.对于发起此呼叫的网页和正在访问的网页,凭据都是相同的.
这是代码,我不知道为什么我总是以登录表单html代码结束?
using (WebClient client = new WebClient())
{
client.QueryString.Add("ID", "1040"); //add parameters
//client.Credentials = CredentialCache.DefaultCredentials;
//I tried to add credentials like this
client.Credentials = new NetworkCredential("username", "password");
string htmlCode = client.DownloadString("http://domain.loc/testpage.aspx");
}
Run Code Online (Sandbox Code Playgroud) 是否可以直接在Visual Studio 2010中存储用于连接到Team Foundation Server的凭据?
我想避免在每次VS发布时插入它们.
问题是托管TFS的计算机不在域中,我使用在该计算机上创建的用户的凭据进行连接.
假设机器名称为TOOLS且用户为Marco,我需要每次都插入
User name: TOOLS\Marco
Password: *
Run Code Online (Sandbox Code Playgroud)
如果它存在,你能建议一个可能的解决方案吗?
我有Android应用程序,它具有硬编码(静态字符串常量)凭据(用户/通行证),用于通过SMTP发送电子邮件.
问题是.apk中的.dex文件可以很容易地进行逆向工程,每个人都可以看到我的密码.
有没有办法如何保护这些凭据,而我仍然可以在我的课程中使用它们?
我想通过Spark(pyspark,真的)从我的(本地)机器读取一个S3文件.现在,我不断收到身份验证错误
java.lang.IllegalArgumentException:必须将AWS Access Key ID和Secret Access Key指定为s3n URL的用户名或密码,或者分别设置fs.s3n.awsAccessKeyId或fs.s3n.awsSecretAccessKey属性.
我在这里和网上到处寻找,尝试了很多东西,但显然S3在过去一年或几个月里一直在变化,所有方法都失败了但是一个:
pyspark.SparkContext().textFile("s3n://user:password@bucket/key")
Run Code Online (Sandbox Code Playgroud)
(注意s3n[ s3不起作用]).现在,我不想使用带有用户和密码的URL,因为它们可以出现在日志中,我也不知道如何从~/.aws/credentials文件中获取它们.
那么,我如何使用来自现在标准 ~/.aws/credentials文件的AWS凭证(或者更好地,pyspark)从S3本地读取(理想情况下,不将凭证复制到另一个配置文件)?
PS:我想os.environ["AWS_ACCESS_KEY_ID"] = …和os.environ["AWS_SECRET_ACCESS_KEY"] = …,也没有工作.
PPS:我不知道在哪里"设置fs.s3n.awsAccessKeyId或fs.s3n.awsSecretAccessKey属性"(Google没有提出任何建议).不过,我也尝试设置这些方法很多:SparkContext.setSystemProperty(),sc.setLocalProperty(),和conf = SparkConf(); conf.set(…); conf.set(…); sc = SparkContext(conf=conf).没有任何效果.
我跑了
git config credential.helper store
跑了
git push origin master
我输入凭据的地方,他们得救了.
我读到它们是以纯文本形式存储的,所以现在我想删除我的凭据,保存并默认输入.
我怎样才能做到这一点?
我试图允许应用程序服务(python)从azure keyvault获取秘密,而不使用硬编码的客户端id/秘密,因此我尝试使用ManagedIdentity。
代码:
credentials_object = ManagedIdentityCredential()
client = SecretClient(vault_url=VAULT_URL, credential=credentials_object)
value = client.get_secret('MYKEY').value
Run Code Online (Sandbox Code Playgroud)
错误(当部署应用程序和在本地运行时):
azure.identity._exceptions.CredentialUnavailableError: ManagedIdentityCredential 身份验证不可用,未找到托管标识终结点。
我缺少什么?谢谢你!
python credentials azure azure-keyvault azure-managed-identity
我在Windows 7机器上安装了AWS命令行界面,当我从DOS shell调用命令时它立即起作用.
但DOS是有史以来发明的最糟糕的语言,对任何严肃的脚本来说都是可怕的.所以,我想通过cygwin从bash使用AWS CLI.
在我的例子中,已安装的AWS CLI是Windows版本.原则上,这应该不是问题,因为Windows命令可以从cygwin执行.(cygwin在其自己的环境中包含您的Windows环境变量,例如PATH.)
不幸的是,当我第一次尝试从cygwin/bash执行AWS CLI命令时,我收到一个错误:
$ aws s3 cp code.tgz s3://xyz/
upload failed: .\code.tgz to s3://xyz/code.tgz
Unable to locate credentials
Run Code Online (Sandbox Code Playgroud)
此错误可能是因为AWS CLI正在查找credentials文件的错误目录.在Windows上,它希望该文件位于%UserProfile%.aws和unix中~/.aws.
一个hack解决方法是在我的主目录中创建了一个名为的新文件config_credentials,其中包含该目录文件内容的config并集credentials.然后我创建了一个新的Windows系统env var,AWS_CONFIG_FILE其值是路径config_credentials.成功:从cygwin发出的AWS CLI命令现在可以正常工作.
我想知道是否有更好的解决方案?
我很好奇为什么AWS CLI最初无法在正确的主目录中搜索config和credentials文件.我也想知道是否有办法纠正(这将消除对AWS_CONFIG_FILEenv var 的需要).
windows cygwin credentials command-line-interface amazon-web-services
我有点困惑SQL服务器Windows登录和凭证.在线书籍上,它说凭证可以访问sql server之外的资源,但据我所知,Windows登录可能能够做到这一点,因为它映射到Windows用户.我错过了别的什么吗?
提前致谢.
docker run -p 9200:9200 \
-p 9300:9300 \
-e "discovery.type=single-node" \
docker.elastic.co/elasticsearch/elasticsearch:5.6.2
Run Code Online (Sandbox Code Playgroud)
但是curl localhost:9200失败并出现身份验证错
{
"error": {
"root_cause": [
{
"type": "security_exception",
"reason": "missing authentication token for REST request [/]",
"header": {
"WWW-Authenticate": "Basic realm=\"security\" charset=\"UTF-8\""
}
}
],
"type": "security_exception",
"reason": "missing authentication token for REST request [/]",
"header": {
"WWW-Authenticate": "Basic realm=\"security\" charset=\"UTF-8\""
}
},
"status": 401
}
Run Code Online (Sandbox Code Playgroud)
Elasticsearch的默认用户名/密码组合是什么?